Java Servlets ব্যবহার করে JSON বা XML ডেটা পাঠানো এবং গ্রহণ করা ওয়েব অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ অংশ। এটি সাধারণত API তৈরিতে ব্যবহৃত হয় যেখানে সার্ভলেট ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা বিনিময়ের জন্য কাজ করে। নিচে সার্ভলেটের মাধ্যমে JSON বা XML ডেটা পাঠানো এবং গ্রহণ করার প্রক্রিয়াটি ধাপে ধাপে আলোচনা করা হলো:
১. JSON ডেটা পাঠানো এবং গ্রহণ করা
JSON ডেটা পাঠানো
Servlet থেকে JSON ডেটা পাঠানোর জন্য:
- Content Type সেট করুন
application/json। - PrintWriter ব্যবহার করে JSON ডেটা লিখুন।
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONObject;
@WebServlet("/sendJson")
public class SendJsonServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
JSONObject jsonResponse = new JSONObject();
jsonResponse.put("status", "success");
jsonResponse.put("message", "This is a JSON response");
PrintWriter out = response.getWriter();
out.print(jsonResponse.toString());
out.flush();
}
}
JSON ডেটা গ্রহণ করা
JSON ডেটা গ্রহণ করার জন্য:
- Content Type চেক করুন।
- BufferedReader ব্যবহার করে JSON ডেটা পড়ুন।
- JSON Object এ ডেটা রূপান্তর করুন।
import java.io.BufferedReader;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONObject;
@WebServlet("/receiveJson")
public class ReceiveJsonServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
StringBuilder jsonBuffer = new StringBuilder();
String line;
try (BufferedReader reader = request.getReader()) {
while ((line = reader.readLine()) != null) {
jsonBuffer.append(line);
}
}
JSONObject jsonRequest = new JSONObject(jsonBuffer.toString());
String name = jsonRequest.getString("name");
int age = jsonRequest.getInt("age");
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
JSONObject jsonResponse = new JSONObject();
jsonResponse.put("status", "received");
jsonResponse.put("name", name);
jsonResponse.put("age", age);
response.getWriter().print(jsonResponse.toString());
}
}
২. XML ডেটা পাঠানো এবং গ্রহণ করা
XML ডেটা পাঠানো
Servlet থেকে XML ডেটা পাঠানোর জন্য:
- Content Type সেট করুন
application/xml। - PrintWriter ব্যবহার করে XML ডেটা লিখুন।
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/sendXml")
public class SendXmlServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/xml");
response.setCharacterEncoding("UTF-8");
String xmlResponse = "<response>" +
"<status>success</status>" +
"<message>This is an XML response</message>" +
"</response>";
PrintWriter out = response.getWriter();
out.print(xmlResponse);
out.flush();
}
}
XML ডেটা গ্রহণ করা
XML ডেটা গ্রহণ করার জন্য:
- Content Type চেক করুন।
- BufferedReader ব্যবহার করে XML ডেটা পড়ুন।
- XML Parser ব্যবহার করে ডেটা প্রসেস করুন।
import java.io.BufferedReader;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@WebServlet("/receiveXml")
public class ReceiveXmlServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
StringBuilder xmlBuffer = new StringBuilder();
String line;
try (BufferedReader reader = request.getReader()) {
while ((line = reader.readLine()) != null) {
xmlBuffer.append(line);
}
}
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new java.io.ByteArrayInputStream(xmlBuffer.toString().getBytes()));
Element root = doc.getDocumentElement();
String name = root.getElementsByTagName("name").item(0).getTextContent();
String age = root.getElementsByTagName("age").item(0).getTextContent();
response.setContentType("application/xml");
response.setCharacterEncoding("UTF-8");
String xmlResponse = "<response>" +
"<status>received</status>" +
"<name>" + name + "</name>" +
"<age>" + age + "</age>" +
"</response>";
response.getWriter().print(xmlResponse);
} catch (Exception e) {
e.printStackTrace();
}
}
}
গুরুত্বপূর্ণ বিষয়:
- Dependency: JSON এর জন্য
org.jsonলাইব্রেরি এবং XML পার্সিংয়ের জন্যjavax.xml.parsersব্যবহার করুন। - Error Handling: JSON/XML ডেটা প্রক্রিয়াকরণের সময় ব্যতিক্রম পরিচালনা করুন।
- HTTP Methods:
GETএবংPOSTসঠিকভাবে ব্যবহার করুন। - Security: ডেটা যাচাই এবং সুরক্ষা নিশ্চিত করুন।
আপনার প্রয়োজন অনুযায়ী এই কোড পরিবর্তন করতে পারেন।
Content added By